home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / kcl / akcl / akcl1615.lha / h / genport.h < prev    next >
C/C++ Source or Header  |  1991-01-31  |  6KB  |  117 lines

  1. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  2. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  3. /*                                                                 */
  4. /*                        Fichier Include PARI                     */
  5. /*                                                                 */
  6. /*                 declarations specifiques portables              */
  7. /*                                                                 */
  8. /*                        copyright  Babecool                      */
  9. /*                                                                 */
  10. /*                                                                 */
  11. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  12. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  13.  
  14. extern unsigned long overflow,hiremainder;
  15.  
  16. /* mp.c */
  17.  
  18. #define signe(x)          (((GEN)(x))[1]>>24)
  19. #define setsigne(x,s)     (((GEN)(x))[1]=(((GEN)(x))[1]&0xffffff)+(s<<24))
  20. #define typ(x)            (((unsigned long)((GEN)(x))[0])>>24)
  21. #define settyp(x,s)       (((GEN)(x))[0]=(((GEN)(x))[0]&0xffffff)+(s<<24))
  22. #define pere(x)           ((unsigned long)(((GEN)(x))[0]&0xffffff)>>16)
  23. #define setpere(x,s)      (((GEN)(x))[0]=(((GEN)(x))[0]&0xff00ffff)+(s<<16))
  24. #define lg(x)             (((GEN)(x))[0]&0xffff)
  25. #define setlg(x,s)        (((GEN)(x))[0]=(((GEN)(x))[0]&0xffff0000)+s)
  26. #define lgef(x)           (((GEN)(x))[1]&0xffff)
  27. #define setlgef(x,s)      (((GEN)(x))[1]=(((GEN)(x))[1]&0xffff0000)+s)
  28. #define expo(x)           ((((GEN)(x))[1]&0xffffff)-0x800000)
  29. #define setexpo(x,s)      (((GEN)(x))[1]=(((GEN)(x))[1]&0xff000000)+(0x800000+s))
  30. #define valp(x)           ((((GEN)(x))[1]&0xffff)-0x8000)
  31. #define setvalp(x,s)      (((GEN)(x))[1]=(((GEN)(x))[1]&0xffff0000)+(0x8000+s))
  32. #define precp(x)          (((unsigned long)((GEN)(x))[1])>>16)
  33. #define setprecp(x,s)     (((GEN)(x))[1]=(((GEN)(x))[1]&0xffff)+(s<<16))
  34. #define varn(x)           ((((GEN)(x))[1]&0xff0000)>>16)
  35. #define setvarn(x,s)      (((GEN)(x))[1]=(((GEN)(x))[1]&0xff00ffff)+(s<<16))
  36. #define mant(x,i)         ((((GEN)(x))[1]&0xff000000)?((GEN)(x))[i+1]:0)
  37. #define setmant(x,i,s)    (((GEN)(x))[i+1]=s)
  38. #define affrs(x,s)        (err(affer4))
  39. #define affri(x,y)        (err(affer5))
  40. #define mpshift(x,s)      ((typ(x)==1)?shifti(x,s):shiftr(x,s))
  41. #define cmpis(x,y)        (-cmpsi(y,x))
  42. #define cmprs(x,y)        (-cmpsr(y,x))
  43. #define cmpri(x,y)        (-cmpir(y,x))
  44. #define subis(x,y)        (addsi(-y,x))
  45. #define subrs(x,y)        (addsr(-y,x))
  46.  
  47. #define divii(a,b)        (dvmdii(a,b,0))
  48. #define resii(a,b)        (dvmdii(a,b,-1))
  49.  
  50. #define affsz(s,x)        ((typ(x)==1)?affsi(s,x):affsr(s,x))
  51. #define mpneg(x)          ((typ(x)==1)?negi(x):negr(x))
  52. #define mpabs(x)          ((typ(x)==1)?absi(x):absr(x))
  53. #define mpinvz(x,y)       ((typ(x)==1)?divsiz(1,x,y):divsrz(1,x,y))
  54.  
  55. #define mpnegz(x,y)       ((typ(x)==1)?gop1z(negi,x,y):gop1z(negr,x,y))
  56. #define mpabsz(x,y)       ((typ(x)==1)?gop1z(absi,x,y):gop1z(absr,x,y))
  57. #define mpshiftz(x,s,y)   ((typ(x)==1)?gops2gsz(shifti,x,s,y):gops2gsz(shiftr,x,s,y))
  58. #define mptruncz(x,y)     (gop1z(mptrunc,x,y))
  59. #define mpentz(x,y)       (gop1z(mpent,x,y))
  60. #define mpaddz(x,y,z)     (gop2z(mpadd,x,y,z))
  61. #define addsiz(s,y,z)     (gops2sgz(addsi,s,y,z))
  62. #define addsrz(s,y,z)     (gops2sgz(addsr,s,y,z))
  63. #define addiiz(x,y,z)     (gop2z(addii,x,y,z))
  64. #define addirz(x,y,z)     (gop2z(addir,x,y,z))
  65. #define addriz(x,y,z)     (gop2z(addir,y,x,z))
  66. #define addrrz(x,y,z)     (gop2z(addrr,x,y,z))
  67. #define mpsubz(x,y,z)     (gop2z(mpsub,x,y,z))
  68. #define subsiz(s,y,z)     (gops2sgz(subsi,s,y,z))
  69. #define subsrz(s,y,z)     (gops2sgz(subsr,s,y,z))
  70. #define subisz(y,s,z)     (gops2sgz(addsi,-s,y,z))
  71. #define subrsz(y,s,z)     (gops2sgz(addsr,-s,y,z))
  72. #define subiiz(x,y,z)     (gop2z(subii,x,y,z))
  73. #define subirz(x,y,z)     (gop2z(subir,x,y,z))
  74. #define subriz(x,y,z)     (gop2z(subri,x,y,z))
  75. #define subrrz(x,y,z)     (gop2z(subrr,x,y,z))
  76. #define mpmulz(x,y,z)     (gop2z(mpmul,x,y,z))
  77. #define mulsiz(s,y,z)     (gops2sgz(mulsi,s,y,z))
  78. #define mulsrz(s,y,z)     (gops2sgz(mulsr,s,y,z))
  79. #define muliiz(x,y,z)     (gop2z(mulii,x,y,z))
  80. #define mulirz(x,y,z)     (gop2z(mulir,x,y,z))
  81. #define mulriz(x,y,z)     (gop2z(mulir,y,x,z))
  82. #define mulrrz(x,y,z)     (gop2z(mulrr,x,y,z))
  83. #define mpinvsr(s,y)      (divssz(1,s,y))
  84. #define mpinvir(x,y)      (divsiz(1,x,y))
  85. #define mpinvrr(x,y)      (divsrz(1,x,y))
  86. #define mpdvmdz(x,y,z,t)  (dvmdiiz(x,y,z,t))
  87. #define modssz(s,y,z)     (gops2ssz(modss,s,y,z))
  88. #define modsiz(s,y,z)     (gops2sgz(modsi,s,y,z))
  89. #define modisz(y,s,z)     (gops2gsz(modis,y,s,z))
  90. #define ressiz(s,y,z)     (gops2sgz(ressi,s,y,z))
  91. #define resisz(y,s,z)     (gops2gsz(resis,y,s,z))
  92. #define resssz(s,y,z)     (gops2ssz(resss,s,y,z))
  93. #define mpmodz(x,y,z)     (modiiz(x,y,z))
  94. #define mpresz(x,y,z)     (resiiz(x,y,z))
  95. #define divirz(x,y,z)     (gop2z(divir,x,y,z))
  96. #define divriz(x,y,z)     (gop2z(divri,x,y,z))
  97. #define divsrz(s,y,z)     (gops2sgz(divsr,s,y,z))
  98. #define divrsz(y,s,z)     (gops2gsz(divrs,y,s,z))
  99.  
  100. GEN     cgetr(),cgeti(),gerepile(),stoi();
  101. GEN     negi(),negr(),absi(),absr();
  102. GEN     mptrunc(),mpent(),shifts(),shifti(),shiftr();
  103. GEN     addsi(),addsr(),addii(),addir(),addrr(),mpadd();
  104. GEN     subsi(),subsr(),subii(),subir();
  105. GEN     subri(),subrr(),mpsub();
  106. GEN     mulss(),mulsi(),mulsr(),mulii(),mulir(),mulrr(),mpmul();
  107. GEN     divsi(),divis(),divsr(),divrs(),divir();
  108. GEN     divri(),divrr(),mpdiv(),convi(),confrac();
  109. GEN     modss(),resss(),modsi(),ressi(),modis(),resis(),modii();
  110. GEN     dvmdii(),dvmdsi(),dvmdis();
  111. long    itos(),vals(),vali(),divisii();
  112. int     expi();
  113. void    affii(),affir(),affrr(),mulsii(),addsii(),divsiz(),divisz(),divssz();
  114. void    dvmdssz(),dvmdsiz(),dvmdisz(),dvmdiiz(),mpdivz(),modiiz();
  115. void    diviiz(),divrrz(),cgiv();
  116.  
  117.